# 导入数据会话session
from sqlalchemy.orm import Session

# 导入模型类
from soulapi.models import model_admin
from soulapi.schemas import schema_admin



"""创建"""
# 创建管理员信息,传入的admin是schema_admin。AdminCreate格式体。即当采用post/get请求时，body格式体需要满足schema_admin.AdminCreate规范
def create_admin(db: Session, admin: schema_admin.AdminCreate):
    new_admin = model_admin.Admin(**admin.dict())  # 使用python解包方式dict()传model_admin.Admin进入new_admin
    db.add(new_admin)  # 提交到数据库
    db.commit()  # 数据库执行更改。数据库配置，autcommit配置
    db.refresh(new_admin)  # 刷新
    return new_admin


"""查询"""
# 通过ID查询管理员信息
def get_admin(db: Session, ad_id: int):
    # 查询query，查询模型类Admin,条件filter,模型类里的ID==传进来的ID（上面参数）
    return db.query(model_admin.Admin).filter(model_admin.Admin.ad_id == ad_id).first()


# 通过管理员真实姓名查询管理员信息
def get_admin_by_name(db: Session, ad_name: str):
    return db.query(model_admin.Admin).filter(model_admin.Admin.ad_name == ad_name).first()


# 获取多少个管理员信息
# 初始化skip，limit,skip: int = 0, limit: int = 10获取数据条数
def get_admins(db: Session, skip: int = 0, limit: int = 10):
    # 查询从skip到limit之间的所有信息
    return db.query(model_admin.Admin).offset(skip).limit(limit).all()